package com.dabbo.starship.interfaces;
import java.rmi.Remote;
import java.rmi.RemoteException;
import java.util.HashMap;

import com.dabbo.starship.shared.SpaceLocation;

public interface Container extends Remote {
		
	public int getPowerOutput() throws RemoteException;
	
	public Block getBlock(int blockID) throws RemoteException;

	public void powerFailure() throws RemoteException;

	public void setEntryBlock(int entryBlock) throws RemoteException;
	public int getEntryBlock() throws RemoteException;
	
	public HashMap<Integer, Block> getAllBlocks() throws RemoteException;
	
	public void tick() throws RemoteException;
	
	public String getAssetName() throws RemoteException;
	public void setAssetName(String assetName) throws RemoteException;

	public String getPlayerID() throws RemoteException;
	public void setPlayerID(String playerID) throws RemoteException;

	public SpaceLocation getPosition() throws RemoteException;
	public void setPosition(SpaceLocation position) throws RemoteException;

	public long getHullPoints() throws RemoteException;
	public void setHullPoints(long hullPoints) throws RemoteException;

	public long getShieldPoints() throws RemoteException;
	public void setShieldPoints(long shieldPoints) throws RemoteException;

	public int getThrust() throws RemoteException;
	public void setThrust(int thrust) throws RemoteException;

	public int getSpeed() throws RemoteException;
	public void setSpeed(int speed) throws RemoteException;

	public int getDirection() throws RemoteException;
	public void setDirection(int direction) throws RemoteException;

	public HashMap<Integer, Block> getBlocks() throws RemoteException;
	public void setBlocks(HashMap<Integer, Block> blocks) throws RemoteException;

	public String getCommandCode() throws RemoteException;
	public void setCommandCode(String commandCode) throws RemoteException;
	
}
